package lesson1_20.lesson14;

/**
 * 使用多例设计模式写一个三原色构造类
 */
public class Color {

    //内部提供若干个实例化对象，通过static返回
    private static final Color RED = new Color("红色");
    private static final Color GREEN = new Color("绿色");
    private static final Color BLUE = new Color("蓝色");
    private String title;

    //构造方法私有化
    private Color(String title) {
        this.title = title;
    }

    public static Color getInstance(int ch) {
        switch (ch) {
            case 0:
                return RED;
            case 1:
                return GREEN;
            case 2:
                return BLUE;
            default:
                return null;
        }
    }

    @Override
    public String toString() {
        return this.title;
    }

    //以上是JDK1.5版本以前的做法
    //其主要目的是限制产生实例化个数
    //但是从JDK1.5开始有了枚举
    //Color2采用枚举写法


}
